StupidBeauty
Read times:979Posted at:Thu Mar 6 02:09:08 2014
- no title specified

转载:Android 异步处理二:使用 AsyncTask 异步更新 UI 界面 .

AsyncTask中,可使用publishProgress()和onProgressUpdated()来向主线程报告当前的执行进度,线程间的调度是自动进行的。

http://my.eoe.cn/938986/archive/6682.html

亮点

@Override

protected Bitmap doInBackground(String... params) {// 处理后台执行的任务,在后台线程执行

publishProgress(0);// 将会调用 onProgressUpdate(Integer... progress) 方法

HttpClient hc = new DefaultHttpClient();

publishProgress(30);

HttpGet hg = new HttpGet(params[0]);// 获取 csdn logo

final Bitmap bm;

try {

HttpResponse hr = hc.execute(hg);

bm = BitmapFactory.decodeStream(hr.getEntity().getContent());

} catch (Exception e) {

return null;

}

publishProgress(100);

//mImageView.setImageBitmap(result); 不能在后台线程操作 ui

return bm;

}

protected void onProgressUpdate(Integer... progress) {// 在调用 publishProgress 之后被调用,在 ui 线程执行

mProgressBar.setProgress(progress[0]);// 更新进度条的进度

}

protected void onPostExecute(Bitmap result) {// 后台任务执行完之后被调用,在 ui 线程执行

if(result != null) {

Toast.makeText(AsyncTaskActivity.this, " 成功获取图片 ", Toast.LENGTH_LONG).show();

mImageView.setImageBitmap(result);

}else {

Toast.makeText(AsyncTaskActivity.this, " 获取图片失败 ", Toast.LENGTH_LONG).show();

}

}


未知美人

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands